Traditionally, networked contact centers are referred to as call centers and designed to enable a company to handle calls from their clients. The calls received from clients may be distributed to multiple call agents according to certain call distribution and handling methodologies. Ideally, a call center is designed to handle calls with minimal client waiting time, minimal dropped calls, even-call distribution to agents, and minimal downtime. Any drastic fluctuations in one or more of these criteria may result in loss of business and/or customer dissatisfaction.
Traditional call centers are normally built to be operated on-premise using proprietary systems with proprietary hardware and software. These on-premise call center systems are generally very costly to maintain. The systems typically require support staff. Furthermore, the systems may be inflexible in the type of applications and hardware that can be supported, limiting the company's ability to upgrade and grow along with any potential increase in demand. Even when the upgrade options are available, they tend to be very costly and may require replacing a current system with another more advanced system, causing further stress to the supporting staff, the agents and the clients. Further, when the call centers include agents located in different geographical areas, support services may become more complex.